package com.googlecode.lemyriapode.jeu;

public class Description {

    class Regle {
    }

    class Propriete {
    }

    class Point {

        Nombre X, Y;

        public Point(Nombre X, Nombre Y) {
            this.X = X;
            this.Y = Y;
        }
    }

    class Espace {

        Memoire pData;
    }

    class Etat {
    }

    class Ensemble {

        Memoire pData;
        Nombre pCardinal;
        Etat pEtat;

        public Ensemble(Nombre pCardinal) {
            this.pCardinal = pCardinal;
        }

        public Nombre cardinal() {
            return pCardinal;
        }
    }

    abstract class Fonction<B, A> {

        abstract B exec(A a);
    }

    abstract class Configuration {

        Nombre pCardinal;
        Espace pEspace;
        Ensemble pEnsemble;

        abstract Etat f(Point pPoint);
    }
    Memoire pMemoire;
    Espace pEspace;
    Ensemble pEnsemble;
    Nombre pCardinalEnsemble;
    Configuration configuration0;
    Fonction<Configuration, Configuration> pTransition;
    Fonction<Espace, Espace> pVoisinage;
    Propriete pPropriete;
    Regle pRegle;

    public Description() {
        validation();
    }

    public void validation() {
    }
}













